package paq_negocio;

import com.sun.rowset.CachedRowSetImpl;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import paq_clase_interfaz.interfaz_programa;
import paq_entidades.enti_profesor;
import paq_entidades.enti_programa_postgrado;
import paq_entidades.enti_variables;
import paq_sentencias.Ejecutarsql;

@Stateless
public class neg_programa_postgrado implements interfaz_programa {

    enti_variables v = new enti_variables();
    enti_programa_postgrado entidad = new enti_programa_postgrado();
    enti_profesor prof = new enti_profesor();
    Ejecutarsql ejec = new Ejecutarsql();

    @Override
    public void inser(String nombre, String cedula, String estado,String norma,String fecha_creacion) {
        entidad.setNombre(nombre);
        entidad.setEstado(estado);
        entidad.setModalidad(norma);
        entidad.setInicio(fecha_creacion);
        prof.setPe_cedula(cedula);
        if (cedula == null) {
            String sql = "insert into programa_postgrado (pp_codigo,pp_nombre,pp_estado,pp_norma,pp_fecha_creacion) values (concat('pp',codprograma.NextVal),'" + entidad.getNombre() + "','" + entidad.getEstado() + "','" + entidad.getModalidad() + "',to_date('" + entidad.getInicio()+ "','yyyy-mm-dd'))";
            ejec.ejecutar2(sql);
        } else {
            String sql = "insert into programa_postgrado (pp_codigo,pp_nombre,pr_cedula,pp_estado,pp_norma,pp_fecha_creacion) values (concat('pp',codprograma.NextVal),'" + entidad.getNombre() + "','" + prof.getPe_cedula() + "','" + entidad.getEstado() + "','" + entidad.getModalidad() + "',to_date('" + entidad.getInicio() + "','yyyy-mm-dd'))";
            ejec.ejecutar2(sql);
        }
        v.msm = ejec.getMen();
    }

    @Override
    public void eliminar(String al_codigo) {
        entidad.setAu_codigo(al_codigo);
        String sql = "delete from  programa_postgrado where pp_codigo='" + entidad.getAu_codigo() + "'";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void actualizar(String al_codigo, String nombre, String cedula, String norma) {
        entidad.setAu_codigo(al_codigo);
        entidad.setNombre(nombre);
        entidad.setModalidad(norma);
        prof.setPe_cedula(cedula);
        String sql = "update programa_postgrado set pp_nombre='" + entidad.getNombre() + "',pr_cedula='" + prof.getPe_cedula() + "',pp_norma='" + entidad.getModalidad() + "' where pp_codigo='" + entidad.getAu_codigo() + "'  ";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public CachedRowSetImpl getLista() {
        try {
            v.crs = ejec.rellena2("select (PROFESOR.PR_NOMBRES ||' '||PROFESOR.pr_apellidos) as pr_nombres,COORDINADOR_PROGRAMA.PR_CEDULA,PROGRAMA_POSTGRADO.PP_NOMBRE,PROGRAMA_POSTGRADO.PP_CODIGO,PROGRAMA_POSTGRADO.pp_estado,pp_norma,pp_fecha_creacion from PROFESOR RIGHT JOIN COORDINADOR_PROGRAMA on PROFESOR.PR_CEDULA=COORDINADOR_PROGRAMA.PR_CEDULA RIGHT JOIN PROGRAMA_POSTGRADO on PROGRAMA_POSTGRADO.PR_CEDULA=COORDINADOR_PROGRAMA.PR_CEDULA");
        } catch (Exception ex) {
            Logger.getLogger(neg_programa_postgrado.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public CachedRowSetImpl getcomboprograma() {
        try {
            v.crs = ejec.rellena2("select * from programa_postgrado where pp_estado !='INACTIVO'");
        } catch (Exception ex) {
            Logger.getLogger(neg_programa_postgrado.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public String getmensajei() {
        String sdr = "";
        sdr = v.msm;
        return sdr;
    }

    @Override
    public CachedRowSetImpl getcomboprograma_por_coordinador(String cod) {
         try {
            v.crs = ejec.rellena2("select * from programa_postgrado where pp_estado !='INACTIVO' and pr_cedula='"+cod+"'");
        } catch (Exception ex) {
            Logger.getLogger(neg_programa_postgrado.class.getName()).log(Level.SEVERE, null, ex);
        }
        return v.crs;
    }

    @Override
    public void activar_programa(String al_codigo) {
        entidad.setAu_codigo(al_codigo);
        String sql = "update programa_postgrado set pp_estado='ACTIVO' where pp_codigo='" + entidad.getAu_codigo() + "'  ";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }

    @Override
    public void desactivar_programa(String al_codigo) {
        entidad.setAu_codigo(al_codigo);
        String sql = "update programa_postgrado set pp_estado='INACTIVO' where pp_codigo='" + entidad.getAu_codigo() + "'  ";
        ejec.ejecutar2(sql);
        v.msm = ejec.getMen();
    }
        }
